package com.jianggy.chainofrespon.webfilter;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 江广友
 * @time 2018年8月10日 下午3:02:17
 * @description
 */
public class FilterChain implements Filter {
	
	private List<Filter> filters = new ArrayList<>();
	private int index = 0;

	/**
	 * @time 2018年8月10日 下午3:03:06
	 * TODO
	 */
	@Override
	public void doFilter(Request request, Response response, FilterChain chain) {
		if (index>=filters.size()) {
			return;
		}
		Filter filter = filters.get(index);
		index++;
		filter.doFilter(request, response, chain);
		
	}
	
	/**
	 * 向FilterChain中添加Filter
	 * @time 2018年8月10日 下午3:05:54
	 * @Description
	 * @param filter
	 * @return
	 */
	public FilterChain addFilter(Filter filter) {
		filters.add(filter);
		return this;
	}

	
}
